// src/api/request.js
import axios from 'axios';
import { useRouter } from 'vue-router';
import { ElMessage } from 'element-plus';
import { useAuth } from '@/hooks/useAuth'; // 导入自定义 Hook
const router = useRouter()

// 创建 Axios 实例
const service = axios.create({
    baseURL: 'http://localhost:3007', // API 服务器的基础 URL
    timeout: 5000 // 请求超时时间
});

const { logout } = useAuth(); // 在这里获取 logout 函数

// 请求拦截器
service.interceptors.request.use(
    config => {
        // 在请求之前进行处理，例如添加 Token
        const token = sessionStorage.getItem('token'); // 从 sessionStorage 获取 Token
        console.log('token',token)
        if (token) {
            // 检查 token 是否过期
            const expiryTime = sessionStorage.getItem('tokenExpiry');
            if (!expiryTime || Date.now() >= expiryTime) {
                logout()
            }
            config.headers['Authorization'] = token; // 添加 Authorization 头
        }
        return config;
    },
    error => {
        // 处理请求错误
        console.error('请求错误:', error);
        return Promise.reject(error);
    }
);

// 响应拦截器
service.interceptors.response.use(
    response => {
        // 处理响应数据
        return response.data; // 返回数据部分
    },
    error => {
        // 处理响应错误
        console.error('响应错误:', error);
        return Promise.reject(error);
    }
);

// 导出 Axios 实例
export default service;
